﻿#define  _CRT_SECURE_NO_WARNINGS1
//给你两个整数，n 和 start 。
//
//数组 nums 定义为：nums[i] = start + 2 * i（下标从 0 开始）且 n == nums.length 。
//
//请返回 nums 中所有元素按位异或（XOR）后得到的结果。
//
//来源：力扣（LeetCode）
//链接：https ://leetcode.cn/problems/xor-operation-in-an-array
//著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
//int xorOperation(int n, int start) {
//    int ret = 0;
//    int arr[n];
//    int i = 0;
//    for (i = 0;i < n;i++) {
//        arr[i] = start + 2 * i;
//    }
//    for (i = 0;i < n;i++) {
//        ret ^= arr[i];
//    }
//    return ret;
//}
//给你一个字符串 s ，每 两个 连续竖线 '|' 为 一对 。换言之，第一个和第二个 '|' 为一对，第三个和第四个 '|' 为一对，以此类推。
//
//请你返回 不在 竖线对之间，s 中 '*' 的数目。
//
//注意，每个竖线 '|' 都会 恰好 属于一个对。
//
//来源：力扣（LeetCode）
//链接：https ://leetcode.cn/problems/count-asterisks
//著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
int countAsterisks(char* s) {
    char* cur = s;
    int count1 = 0;
    int count2 = 0;
    int flag = 0;
    while (*cur) {
        if (*cur == '*') {
            count1++;
            flag = 1;
        }
        if (*cur == '|') {
            count2++;
        }
        cur++;
    }
    if ((!flag) || (!count2)) {
        return count1;
    }
    cur = s;
    char* p = s;
    while (*cur != '\0' && *p != '\0') {
        while (*cur != '|' && *cur != '\0') {
            cur++;
        }
        if (*cur == '|' && *p != '\0') {
            p = cur + 1;
        }
        while (*p != '\0' && *p != '|') {

            if (*p == '*') {
                count1--;
            }
            p++;
        }
        if (*p == '|' && *cur != '\0') {
            cur = p + 1;
        }

    }
    return count1;


}